草庐IT

c++ - NULL == 指针

全部标签

java - Java 中的智能指针和引用计数

我正在尝试用Java编写DagNode类,其中两个节点在逻辑上是相等的,前提是它们作为引用是相等的。C++中的想法——(我来自C++)——将使用智能指针和引用计数:创建节点后,我会在某个表中查找该节点是否已存在。如果是这样,我将返回一个指向旧指针的指针。否则,创建一个新节点。复制构造函数和析构函数等重载的C++方法会进行引用计数,当一个节点的引用计数降为0时,该节点将从上述表中逐出。(C++也会释放内存。)但是,似乎没有办法在Java中自动进行引用计数。我需要进行引用计数以了解何时从表中逐出一个节点(以便它可以被垃圾收集),我真的想避免调用node->incRef()和node->de

java - C中使用虚方法表的动态调度

我希望找到在C中实现动态调度的提示(最好是好的示例)。我正在学习C,作为练习,我想使用动态分派(dispatch)虚拟方法表从Java转换为C。例如我有一个java代码:abstractclassFoo{publicabstractintval();publicabstractBooleanerror();}classFailextendsFoo{publicintval(){return0;}publicBooleanerror(){returntrue;}}classIntFooextendsFoo{intv;publicIntFoo(intvalue){this.value=v;

java - NullPointerException 而不是 null(JVM 错误?)

我在当前版本的Java8中发现了一个奇怪的行为。在我看来,下面的代码应该没问题,但是JVM抛出了一个NullPointerException:Suppliers=()->false?false:false?false:null;s.get();//expected:null,actual:NullPointerException不管是什么类型的lambda表达式(与java.util.function.Function相同)或使用什么泛型类型都没有关系。还可以有更有意义的表达式来代替false吗?:。上面的例子很短。这是一个更丰富多彩的示例:Functionf=s->s.equals(

java - ftpClient.retrieveFileStream(filepath) 返回 null

我有一个文件夹,它在ftp中有3个文件。对于第一个文件,bufferreader正在成功读取。但是从第二个文件InputStream获取为null。不知道是什么原因。我的代码是importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.SocketException;importjava.uti

java - 使用 long 将指针从 JNI 传递到 Java

我正在尝试将结构作为指针从JNI传递到Java,以便稍后能够将它从Java传递回JNI。我读过这个帖子:PassingpointersbetweenCandJavathroughJNI,但我没有成功。我有一个非常复杂的结构:structmyStruct_smyStruct;在Java中,我调用一个JNI函数来初始化结构并返回一个long(指向结构的指针):JNIEXPORTjlongJNICALLJava_example_ExampleJNI_getStruct(JNIEnv*jenv,jclassjcls){structmyStruct_smystruct;long*lp=(long

[corCTF 2022] CoRJail: From Null Byte Overflow To Docker Escape

前言题目来源:竞赛官网–建议这里下载,文件系统/带符号的vmlinux给了参考[corCTF2022]CoRJail:FromNullByteOverflowToDockerEscapeExploitingpoll_listObjectsInTheLinuxKernel–原作者文章,poll_list利用方式corCTF-2022:Corjail-内核容器逃逸–对题目做了详细的解析漏洞解析与利用这里就直接对着源码看了,想分析题目的请阅读上述参考文章。漏洞出现在cormon_proc_write函数中:staticssize_tcormon_proc_write(structfile*file,

java - 断言集合 "Contains at least one non-null element"

我想验证一个集合是否包含至少一个非空元素。我试过is(not(empty())),但是这在下面的测试中通过了。importorg.junit.Test;importjava.util.ArrayList;importjava.util.Collection;importstaticorg.hamcrest.CoreMatchers.is;importstaticorg.hamcrest.MatcherAssert.assertThat;importstaticorg.hamcrest.Matchers.empty;importstaticorg.hamcrest.Matchers.no

java - Java Protocol Buffers 能否在重复字段的列表 getter 上返回 null?

假设您有一个重复字段。messageFoo{optionalint32val=1;}messageBar{repeatedFoofoo=1;}这将生成方法ListgetFooList()有没有getFooList会返回null的情况?或者它是否已经返回一个列表,即使它是空的? 最佳答案 不,不存在返回null的情况。事实上,Javaprotobuf生成的类中的任何字段访问器都不会返回null;如果该字段不存在,它们总是返回默认值。同样,setter不允许您设置null。 关于java-J

java - Hamcrest 错误与非此即彼和 null 或不正确的用法?

当出现以下情况时,我感到很震惊:assertThat(null,either(is(nullValue())).or(notNullValue()));失败:java.lang.AssertionError:Expected:(isnullornotnull)but:wasnullatorg.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)atorg.junit.Assert.assertThat(Assert.java:956)atorg.junit.Assert.assertThat(Assert.java:923)a

Java 8 可选 : choose between two possibly null values

我必须在两个字符串变量之间做出选择-第一个具有非null值。如果它们都是null-那么我想退出该方法。这可以在以下代码中完成:Stringvalue1=Stringvalue2=Stringtarget=null;if(value1!=null)target=value1;elseif(value2!=null)target=value2;if(target==null)returnnull;也可以简写:Stringtarget=value1!=null?value1:value2!=null?value2:null;if(target==null)returnnull;我正在努力解决